Skip to content

Add VT swap and sizeup match transforms to setup fixing#8113

Merged
maliberty merged 13 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-upsize-vt
Aug 27, 2025
Merged

Add VT swap and sizeup match transforms to setup fixing#8113
maliberty merged 13 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-upsize-vt

Conversation

@openroad-ci
Copy link
Collaborator

@openroad-ci openroad-ci commented Aug 25, 2025

This adds vt_swap and upsize_match to setup fixing. VT swap is enabled by default unless -skip_vt_swap is used or library has no VT variants. Last gasp stage in repair_timing is modified such that

  1. upsize_match transform is added
  2. VT swap is added
  3. buffer insertion, buffer removal, cloning, load splitting are removed

report_equiv_cells -vt option has been added to report VT variants for a cell.

VT swap swaps to the leakiest variant now. This can be improved to consider slack in the future.

1) sizeup_match to match drive strength with previous stage
2) vt_swap_speed to do VT swap to improve timing

Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
1) made summary reports more concise
2) did prep work for VT swap
3) updated man page

Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
1) always swap to the leakiest VT for now
2) perform sizing and pin swap only during last gasp
3) enable upsize_match during last gasp only

Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
Signed-off-by: Cho Moon <cmoon@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: Cho Moon <cmoon@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@precisionmoon
Copy link
Contributor

precisionmoon commented Aug 26, 2025

CI tests look OK. All of private PDK designs show 0 TNS or significant timing improvement. Most PDKs show timing and runtime benefit. asap7 shows mixed results but should see benefits once we add implant layers in LEF. asap7 / cva6 show TNS reduction from -583.7 to -113.3 and runtime from 6:24 to 4:48.

Public PDK results:
Base hash: 44996 (8/25 20:09)
Test hash: 8c4ef (8/25 21:54)
https://dashboard.precisioninno.com/compare?sourceAType=Commit&sourceBType=Branch&platform=sky130hd&sourceBName=secure-opto-flow&sourceBID=1&designs=aes%2Caes_lvt%2Caes-block%2Caes-mbff%2Ccva6%2Cethmac%2Cethmac_lvt%2Cgcd%2Cgcd-ccs%2Cibex%2Cjpeg%2Cjpeg_lvt%2Cmock-alu%2Cmock-array%2Cmock-cpu%2Criscv32i%2Criscv32i-mock-sram%2Cswerv_wrapper%2Cuart

Private Jenkins:
http://secure-ci:8080/blue/organizations/jenkins/SB/detail/secure-opto-flow/1/pipeline/352/
A lone failure is rapidus / hercules_is_int. WNS degraded slightly but # setup violation count went down from 32646 to 3694.

@maliberty
Copy link
Member

Please make an ORFS PR for any metrics that need updating (hercules_is_int ?)

@precisionmoon
Copy link
Contributor

Please make an ORFS PR for any metrics that need updating (hercules_is_int ?)

Yes, this is coming. The-OpenROAD-Project/OpenROAD-flow-scripts#3434

@maliberty maliberty merged commit 3556f9c into The-OpenROAD-Project:master Aug 27, 2025
10 of 11 checks passed
@maliberty maliberty deleted the secure-upsize-vt branch August 27, 2025 00:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants